using System;
using System.Net.Sockets;

namespace Hsenl.Network {
    public interface IEpibolySocket : IDisposable {
        public event Action<int> OnErrorEvent;
        public event Action OnClosedEvent;
        public Socket Socket { get; internal set; }
        public bool IsClosed { get; }
        public bool IsDisposed { get; }
        
        void Close(bool closeSocket = true);
    }
}